//
//  User.h
//  Pennyworth
//
//  Created by Chris Karr on 12/24/07.
//  Copyright 2007 Chris J. Karr. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#import "Context.h"
#import "DecisionTreeLearner.h"

#define LABELS_UPDATED @"Labels Updated"

@interface User : NSObject 
{
	NSString * location;
	NSString * activity;
	NSString * social;

	IBOutlet NSArrayController * locations;
	IBOutlet NSArrayController * activities;
	IBOutlet NSArrayController * socials;
	
	IBOutlet Context * context;
	
	NSMutableDictionary * learners;

	/* IBOutlet Learner * locationLearner;
	IBOutlet Learner * activityLearner;
	IBOutlet Learner * socialContextLearner; */

	DecisionTreeLearner * learner;
	NSMutableDictionary * cachedObservations;
}

@property(copy) NSString * location;
@property(copy) NSString * activity;
@property(copy) NSString * social;

@property(retain) Learner * learner;

@property(retain) NSArrayController * locations;
@property(retain) NSArrayController * activities;
@property(retain) NSArrayController * socials;

- (IBAction) saveValues:(id) sender;
- (IBAction) resetLearners:(id) sender;
- (IBAction) resetLabels:(id) sender;
- (IBAction) removeLastExample:(id) sender;

- (NSArray *) learnerKeys;
- (Learner *) learnerNamed:(NSString *) key;

@end
